package comandos;

import model.Conversacion;
import model.Usuario;
import protocol.MensajeComando;
import client.ClienteSession;

public class AceptarInvitacionAConversar implements ComandoCliente 
{
	private Usuario usuario;
	private Conversacion conversacion;
	private final Object lock = new Object();
	
	public synchronized void ejecutar (ClienteSession cliente, boolean invocadoPorServidor)
	{
		if (invocadoPorServidor) {
			try 
			{
				Usuario invitado = (Usuario)cliente.getInput().readObject();
				Conversacion conversacion = (Conversacion)cliente.getInput().readObject();
				System.out.println("El usuario: " + invitado.getNombre() + " acepto unirse a la conversacion" + conversacion.getId());
				
			} 
			catch (Exception e) 
			{
				e.printStackTrace();
			}

		} else // Sino fue invocado por el servidor, estoy pidiendo la lista de
				// amigos conectados
		{
			try
			{

				cliente.getOutput().writeObject(new MensajeComando ("aceptar_invitacion_a_conversar",0));
				cliente.getOutput().flush();

				cliente.getOutput().writeObject(this.usuario);
				cliente.getOutput().flush();
				

				cliente.getOutput().writeObject(this.conversacion);
				cliente.getOutput().flush();
			}
			catch (Exception e)
			{
				e.printStackTrace();
			}
		}
	}
	
	
	public Usuario getUsuario() {
		return usuario;
	}
	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}


	public Conversacion getConversacion() {
		return conversacion;
	}


	public void setConversacion(Conversacion conversacion) {
		this.conversacion = conversacion;
	}
	
	
}
